home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / IDLIncludes / DeviceNotify.idl < prev    next >
Text File  |  1996-05-01  |  5KB  |  160 lines

  1. /*
  2.      File:        DeviceNotify.idl
  3.  
  4.      Contains:    xxx put contents here xxx
  5.  
  6.      Version:    Technology:    xxx put the technology version here xxx
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. */
  18. #ifndef __DEVICENOTIFY_IDL__
  19. #define __DEVICENOTIFY_IDL__
  20.  
  21. #include <somobj.idl>
  22. #include <somcls.idl>
  23.  
  24. #ifndef __TYPES_IDL__
  25. #include <Types.idl>
  26. #endif
  27. #ifndef __KERNEL_IDL__
  28. #include <Kernel.idl>
  29. #endif
  30. #ifndef __NAMEREGISTRY_IDL__
  31. #include <NameRegistry.idl>
  32. #endif
  33.  
  34. #ifdef __SOMIDL__
  35.  
  36. #if FOR_SYSTEM8_PREEMPTIVE
  37. /*
  38.  ß
  39. ##############################################################################
  40.     
  41.     File Name: DeviceNotifyPriv.h
  42.     
  43.     Description:
  44.                             The device notification service is used by Copland Kernel band
  45.                     Low level family expert code to inform high level "consumers" about
  46.                 hot plugging/un-plugging of devices.
  47.                 
  48.                 The High level families or code modules running in priviledged mode 
  49.                 can subscribe to the service with the DevNRegisterInterestIn().
  50.                 LL Family notifies its consumers through the DevNNotifyThatThisChanged().
  51.     
  52. ##############################################################################
  53. ############################
  54.  Defines
  55. ############################
  56. */
  57. typedef UInt32                    DevNRef;
  58.  
  59. /*
  60.      a connection Reference Num for a particular subscription
  61.                                         a consumer subscription is identified by a unique
  62.                                          DevNSubRef. In order to cancel a consumer registration,
  63.                                         the DevNSubRef must be specified.
  64.                                     
  65.                                         a  Reference Num for a particular notification
  66.                                         A notification is identified by a unique DevNRef,
  67.                                         since a notification can go through couple of states, and 
  68.                                         it needs to be tracked with a unique identifier.
  69.                                     
  70. */
  71. /*
  72.  ß
  73. ########################################################################
  74.     Known & valid Service Category definitions are defined in DFM.h
  75. ########################################################################
  76. */
  77. /*
  78.  ß
  79. ########################################################################
  80.  Event definition:
  81.     If kDevNSoftRequestMask is set in conjunction with an event value,
  82.     then a soft request is indicated, and the DevN will handle all the
  83.     drudgery associated with two-way transactions, etc.
  84.     (e.g. If (kDevNRemoved and kDevNSoftRequestMask) is received, it's 
  85.     a soft eject request)
  86.     If kDevNSoftRequestMask is NOT set, then it's a hard request
  87.      If the kDevNWarningMask is set, then it's an event warning that 
  88.     a given event is about to happen (and the consumer can't do a thing
  89.     about it). It will be followed later on by a gone hard event.
  90.     the kDevNWarningMask and the kDevNSoftRequestMask can NOT be set at
  91.     the same time.
  92. ########################################################################
  93. */
  94. typedef UInt32                    DevNEventType;
  95.  
  96. /*
  97.  pre-defined event mask
  98.  ß
  99.  definition of valid global event
  100.  (10/11/95) Events are now enum instead of masks
  101.  enum for "unsigned" values
  102. */
  103. /* enum for "signed" values*/
  104. /*
  105.  ß
  106. ########################################################################
  107.     Routine return value definition
  108. ########################################################################
  109. */
  110. typedef UInt32                    DevNPermissionResponse;
  111.  
  112. /* status returned by consumer to DevN*/
  113. /*
  114. ########################################################################
  115.     Error code definition
  116. ########################################################################
  117. */
  118. /*
  119. ########################################################################
  120.     Subroutine Prototype
  121. ########################################################################
  122.  no more handlers
  123. ######################                    
  124.  called by consumer
  125. ######################    
  126. */
  127. /*
  128.  call to register family defined events.
  129.  itemCount specifies how many events are desired
  130.     (Only create one event at a time)
  131. */
  132. /* de-register the given event*/
  133. /*
  134.  must be called after an kDevNPermissionDelayed is returned to the DevN
  135.     for a notification response.
  136. ######################                    
  137.  called by producer
  138. ######################                    
  139. */
  140. /*
  141. #####################################
  142.  Notification Message definitions        
  143. #####################################
  144. */
  145. typedef SOMLargeStruct            DevNMessage;                /* Derived from a struct of 32 bytes in size */
  146.  
  147. /*
  148. #########################################################
  149.     Device Notification sub-message types.    
  150.     (This is in the "subMessageType" field inside
  151.         The DevNMessage structure)
  152. #########################################################
  153. */
  154. #endif
  155.  
  156. #endif /* __SOMIDL__ */
  157.  
  158. #endif /* __DEVICENOTIFY_IDL__ */
  159.  
  160.